package mtt.us.client.views.fachbereich.editor;

import mtt.us.client.events.GetModelDataEvent;
import mtt.us.client.events.SetModelDataEvent;
import mtt.us.client.views.fachbereich.editor.events.DeleteFachbereichEvent;
import mtt.us.dto.FachbereichDTO;
import hmvc4gwt.client.event.HmvcEvent;
import hmvc4gwt.client.event.HmvcEventListener;
import hmvc4gwt.client.model.Model;

public class FachbereicheEditorModel extends Model implements HmvcEventListener {
	
	private FachbereichDTO fachbereich;

	/**
	 * setzt den zu editierenden Fachbereich
	 * @param fachbereich
	 */
	public FachbereicheEditorModel(FachbereichDTO fachbereich) {
		setFachbereich(fachbereich);
	}
	
	public void doInit() {
		
		getController().register(GetModelDataEvent.class, this);
		getController().register(DeleteFachbereichEvent.class, this);
	}
	
	/**
	 * zeigt einen leeren Editor zum anlegen eines neuen Fachbereichs an
	 */
	public FachbereicheEditorModel() {
	}

	private FachbereichDTO getFachbereich() {
		return fachbereich;
	}

	private void setFachbereich(FachbereichDTO fachbereich) {
		this.fachbereich = fachbereich;
	}

	public void handleEvent(HmvcEvent event) {
		
		if (event instanceof GetModelDataEvent) {
			
			getController().fireLocalEvent(new SetModelDataEvent(getFachbereich()));
			
		} else if (event instanceof DeleteFachbereichEvent) {
			
		}
		
	}

}
